package com.example.controller;

import com.example.common.Result;
import com.example.service.AdminInfoService;
import com.example.service.FileInfoService;
import com.example.service.UserInfoService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;

/**
 * 系统统计信息控制器
 * 提供各类业务数据的汇总统计接口
 */
@RestController
public class MenuController {

	@Resource
	private AdminInfoService adminInfoService;
	@Resource
	private UserInfoService userInfoService;
	@Resource
	private FileInfoService fileInfoService;

	/**
	 * 获取系统核心数据统计
	 * @return {@link Result} 包含统计数据的结果对象（Map格式）
	 * @implNote 统计维度包含：
	 * 1. 管理员账户总数（adminInfo）
	 * 2. 普通用户总数（userInfo）
	 * 3. 文件记录总数（fileInfo）
	 */
	@GetMapping(value = "/getTotal", produces="application/json;charset=UTF-8")
	public Result<Map<String, Integer>> getTotle() {
		Map<String, Integer> resultMap = new HashMap<>();
		resultMap.put("adminInfo", adminInfoService.findAll().size());
		resultMap.put("userInfo", userInfoService.findAll().size());
		resultMap.put("fileInfo", fileInfoService.findAll().size());
		return Result.success(resultMap);
	}
}